from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from info import create_app, db
from info.models import User

# 创建 app，并传入配置模式：development / production
app = create_app('development')


# 使用终端脚本工具启动和管理flask项目
manager = Manager(app)

# 初始化数据库迁移模块
Migrate(app, db)

# 给终端脚本工具新增数据迁移的相关命令
manager.add_command('db', MigrateCommand)


# 新增创建管理员账号的命令
@manager.option('-n', '--name', dest='name')
@manager.option('-p', '--password', dest='password')
def createsuperuser(name, password):
    """创建管理员账号的命令"""
    if not all([name, password]):
        print('参数不足')
        return

    from info.models import User
    # 验证账号必须是手机号
    user = User()
    user.mobile = name
    user.nick_name = name
    user.password = password
    user.is_admin = True
    print(name)

    try:
        db.session.add(user)
        db.session.commit()
        print("创建成功")
    except Exception as e:
        print(e)
        db.session.rollback()


# 运行项目
if __name__ == '__main__':
    # app.run()
    manager.run()
# 在终端下创建管理员# 在终端下创建管理员 python manage.py createsuperuser -n 账号 -p 密码
